package com.hk.kindheartedness;

import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.hk.kindheartedness.util.ToastUtil;

import java.util.Objects;

/**
 * 管理员管理界面
 */
public class AdminActivity extends AppCompatActivity implements View.OnClickListener {

    //    Initialize Toast
    private Toast toast;

    //    Initialize intent
    private Intent intent;

    //    定义一个常量，记录两次点击后退按钮的时间差
    private Long exitTime = 0L;


    @RequiresApi(api = Build.VERSION_CODES.N)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_admin);
//        提取出传递的用户类型
        Intent intent2 = getIntent();
        Bundle bundle = intent2.getExtras();
//        校验登录用户是否正确
        checkLoginAdmin(bundle);
//        获取按钮控制权
        Button loginOutBtn = findViewById(R.id.loginOutBtn);
        Button doctorAdmin = findViewById(R.id.doctorAdmin);
        Button buyerAdmin = findViewById(R.id.buyerAdmin);
        loginOutBtn.setOnClickListener(this);
        doctorAdmin.setOnClickListener(this);
        buyerAdmin.setOnClickListener(this);

    }

    /**
     * 校验登录用户是否正确
     * @param bundle
     */
    @RequiresApi(api = Build.VERSION_CODES.N)
    private void checkLoginAdmin(Bundle bundle) {
        if (Objects.nonNull(bundle)) { // 存在
            String loginType = bundle.getString("loginType");
            String userName = bundle.getString("userName");
//            判断是否为管理员登录
            if (Objects.nonNull(loginType) && "2".equals(loginType)) {
                toast = ToastUtil.toastHint(this.toast, AdminActivity.this, "欢迎管理员登录！");
                TextView textViewUserName = findViewById(R.id.userName);
                textViewUserName.setText(userName);
                return;
            }
//            如果非管理员登录会直接跳转到登录页面
            intent = new Intent(AdminActivity.this,LoginActivity.class);
            startActivity(intent);
            AdminActivity.this.finish();
            return;
        }
//            如果非管理员登录会直接跳转到登录页面
        intent = new Intent(AdminActivity.this,LoginActivity.class);
        startActivity(intent);
        AdminActivity.this.finish();
        return;
    }

    /**
     * 点击按钮事件
     * @param v
     */
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
//            退出
            case R.id.loginOutBtn:
//            直接跳转到登录页面
                intent = new Intent(AdminActivity.this,LoginActivity.class);
                startActivity(intent);
                AdminActivity.this.finish();
                break;
            case R.id.doctorAdmin:
//            直接跳转到医生管理页面页面
                intent = new Intent(AdminActivity.this,DockerAdminActivity.class);
                startActivity(intent);
                break;
            case R.id.buyerAdmin:
//            直接跳转到采购员管理页面
                intent = new Intent(AdminActivity.this,BuyerAdminActivity.class);
                startActivity(intent);
                break;
            default:
                return;
        }
    }

    //    重写onKeyDown()方法来拦截用户单击后退按钮事件
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
//        判断按下的是否为后退按键
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            exit();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

    //    创建退出方法
    private void exit() {
//        判断两次点击的时间差 大于2秒钟
        if ((System.currentTimeMillis() - exitTime) > 2000) {
            toast = ToastUtil.toastHint(this.toast, AdminActivity.this, "再按一次退出程序！");
            exitTime = System.currentTimeMillis();
        } else {
//            关闭当前Activity
            finish();
//            关闭程序
            System.exit(0);
        }
    }

}